home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 July: Mac OS SDK / Dev.CD Jul 99 SDK1.toast / Development Kits / Mac OS / QuickDraw3D 1.6 SDK / Mac Interfaces / PInterfaces / QD3DViewer.p < prev    next >
Encoding:
Text File  |  1999-05-18  |  14.1 KB  |  338 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        QD3DViewer.p
  3.  
  4.      Contains:    MacOS Viewer Controller Interface File.                                
  5.  
  6.      Version:    Technology:    Quickdraw 3D 1.6
  7.                  Release:    QuickTime 4.0
  8.  
  9.      Copyright:    © 1995-1999 by Apple Computer, Inc., all rights reserved.
  10.  
  11.      Bugs?:        For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. }
  17. {$IFC UNDEFINED UsingIncludes}
  18. {$SETC UsingIncludes := 0}
  19. {$ENDC}
  20.  
  21. {$IFC NOT UsingIncludes}
  22.  UNIT QD3DViewer;
  23.  INTERFACE
  24. {$ENDC}
  25.  
  26. {$IFC UNDEFINED __QD3DVIEWER__}
  27. {$SETC __QD3DVIEWER__ := 1}
  28.  
  29. {$I+}
  30. {$SETC QD3DViewerIncludes := UsingIncludes}
  31. {$SETC UsingIncludes := 1}
  32.  
  33. {$IFC UNDEFINED __QD3D__}
  34. {$I QD3D.p}
  35. {$ENDC}
  36. {$IFC UNDEFINED __QD3DGROUP__}
  37. {$I QD3DGroup.p}
  38. {$ENDC}
  39.  
  40. {$IFC TARGET_OS_MAC }
  41. {$IFC UNDEFINED __EVENTS__}
  42. {$I Events.p}
  43. {$ENDC}
  44. {$IFC UNDEFINED __MACTYPES__}
  45. {$I MacTypes.p}
  46. {$ENDC}
  47. {$IFC UNDEFINED __QUICKDRAW__}
  48. {$I Quickdraw.p}
  49. {$ENDC}
  50. {$ENDC}  {TARGET_OS_MAC}
  51.  
  52.  
  53. {$PUSH}
  54. {$ALIGN POWER}
  55. {$LibExport+}
  56.  
  57.  
  58. TYPE
  59.     TQ3ViewerObject                        = Ptr;
  60. {$IFC TYPED_FUNCTION_POINTERS}
  61.     TQ3ViewerWindowResizeCallbackMethod = FUNCTION(theViewer: TQ3ViewerObject; data: UNIV Ptr): TQ3Status; C;
  62. {$ELSEC}
  63.     TQ3ViewerWindowResizeCallbackMethod = ProcPtr;
  64. {$ENDC}
  65.  
  66. {$IFC TYPED_FUNCTION_POINTERS}
  67.     TQ3ViewerPaneResizeNotifyCallbackMethod = FUNCTION(theViewer: TQ3ViewerObject; data: UNIV Ptr): TQ3Status; C;
  68. {$ELSEC}
  69.     TQ3ViewerPaneResizeNotifyCallbackMethod = ProcPtr;
  70. {$ENDC}
  71.  
  72. {$IFC TARGET_OS_MAC }
  73. {$IFC TYPED_FUNCTION_POINTERS}
  74.     TQ3ViewerDrawingCallbackMethod = FUNCTION(theViewer: TQ3ViewerObject; data: UNIV Ptr): OSErr; C;
  75. {$ELSEC}
  76.     TQ3ViewerDrawingCallbackMethod = ProcPtr;
  77. {$ENDC}
  78.  
  79.  
  80. CONST
  81.     kQ3ViewerShowBadge            = $01;
  82.     kQ3ViewerActive                = $02;
  83.     kQ3ViewerControllerVisible    = $04;
  84.     kQ3ViewerDrawFrame            = $08;
  85.     kQ3ViewerDraggingOff        = $10;
  86.     kQ3ViewerButtonCamera        = $20;
  87.     kQ3ViewerButtonTruck        = $40;
  88.     kQ3ViewerButtonOrbit        = $80;
  89.     kQ3ViewerButtonZoom            = $0100;
  90.     kQ3ViewerButtonDolly        = $0200;
  91.     kQ3ViewerButtonReset        = $0400;
  92.     kQ3ViewerOutputTextMode        = $0800;
  93.     kQ3ViewerDragMode            = $1000;
  94.     kQ3ViewerDrawGrowBox        = $2000;
  95.     kQ3ViewerDrawDragBorder        = $4000;
  96.     kQ3ViewerDraggingInOff        = $8000;
  97.     kQ3ViewerDraggingOutOff        = $00010000;
  98.     kQ3ViewerButtonOptions        = $00020000;
  99.     kQ3ViewerPaneGrowBox        = $00040000;
  100.     kQ3ViewerDefault            = $80000000;
  101.  
  102.     kQ3ViewerEmpty                = 0;
  103.     kQ3ViewerHasModel            = $01;
  104.     kQ3ViewerHasUndo            = $02;
  105.  
  106.  
  107. TYPE
  108.     TQ3ViewerCameraView         = SInt32;
  109. CONST
  110.     kQ3ViewerCameraRestore        = 0;
  111.     kQ3ViewerCameraFit            = 1;
  112.     kQ3ViewerCameraFront        = 2;
  113.     kQ3ViewerCameraBack            = 3;
  114.     kQ3ViewerCameraLeft            = 4;
  115.     kQ3ViewerCameraRight        = 5;
  116.     kQ3ViewerCameraTop            = 6;
  117.     kQ3ViewerCameraBottom        = 7;
  118.  
  119.  
  120. {*****************************************************************************
  121.  **                                                                             **
  122.  **        Return viewer version number                                         **
  123.  **                                                                             **
  124.  ****************************************************************************}
  125. FUNCTION Q3ViewerGetVersion(VAR majorRevision: UInt32; VAR minorRevision: UInt32): OSErr; C;
  126.  
  127. {*****************************************************************************
  128.  **                                                                             **
  129.  **        Return viewer release version number                                 **
  130.  **        (in 'vers' format - e.g. 0x01518000 ==> 1.5.1 release)                 **
  131.  **                                                                             **
  132.  ****************************************************************************}
  133. FUNCTION Q3ViewerGetReleaseVersion(VAR releaseRevision: UInt32): OSErr; C;
  134.  
  135. {*****************************************************************************
  136.  **                                                                             **
  137.  **                        Creation and destruction                             **
  138.  **                Note that this is not a QuickDraw 3D object                     **
  139.  **                                                                             **
  140.  ****************************************************************************}
  141. FUNCTION Q3ViewerNew(port: CGrafPtr; VAR rect: Rect; flags: UInt32): TQ3ViewerObject; C;
  142. FUNCTION Q3ViewerDispose(theViewer: TQ3ViewerObject): OSErr; C;
  143.  
  144. {*****************************************************************************
  145.  **                                                                             **
  146.  **                    Functions to attach data to a viewer                     **
  147.  **                                                                             **
  148.  ****************************************************************************}
  149. FUNCTION Q3ViewerUseFile(theViewer: TQ3ViewerObject; refNum: LONGINT): OSErr; C;
  150. FUNCTION Q3ViewerUseData(theViewer: TQ3ViewerObject; data: UNIV Ptr; size: LONGINT): OSErr; C;
  151.  
  152. {*****************************************************************************
  153.  **                                                                             **
  154.  **        Functions to write data out from the Viewer                             **
  155.  **                                                                             **
  156.  ****************************************************************************}
  157. FUNCTION Q3ViewerWriteFile(theViewer: TQ3ViewerObject; refNum: LONGINT): OSErr; C;
  158. FUNCTION Q3ViewerWriteData(theViewer: TQ3ViewerObject; data: Handle): UInt32; C;
  159.  
  160. {*****************************************************************************
  161.  **                                                                             **
  162.  **        Use this function to force the Viewer to re-draw                     **
  163.  **                                                                             **
  164.  ****************************************************************************}
  165. FUNCTION Q3ViewerDraw(theViewer: TQ3ViewerObject): OSErr; C;
  166. FUNCTION Q3ViewerDrawContent(theViewer: TQ3ViewerObject): OSErr; C;
  167. FUNCTION Q3ViewerDrawControlStrip(theViewer: TQ3ViewerObject): OSErr; C;
  168.  
  169. {*****************************************************************************
  170.  **                                                                             **
  171.  **        Function used by the Viewer to filter and handle events                 **
  172.  **                                                                             **
  173.  ****************************************************************************}
  174. FUNCTION Q3ViewerEvent(theViewer: TQ3ViewerObject; VAR evt: EventRecord): BOOLEAN; C;
  175.  
  176. {*****************************************************************************
  177.  **                                                                             **
  178.  **        This function returns a PICT of the contents of the                  **
  179.  **        Viewer's window.  The application should dispose the PICT.             **
  180.  **                                                                             **
  181.  ****************************************************************************}
  182. FUNCTION Q3ViewerGetPict(theViewer: TQ3ViewerObject): PicHandle; C;
  183.  
  184. {*****************************************************************************
  185.  **                                                                             **
  186.  **                        Calls for dealing with Buttons                         **
  187.  **                                                                             **
  188.  ****************************************************************************}
  189. FUNCTION Q3ViewerGetButtonRect(theViewer: TQ3ViewerObject; button: UInt32; VAR rect: Rect): OSErr; C;
  190. FUNCTION Q3ViewerGetCurrentButton(theViewer: TQ3ViewerObject): UInt32; C;
  191. FUNCTION Q3ViewerSetCurrentButton(theViewer: TQ3ViewerObject; button: UInt32): OSErr; C;
  192.  
  193. {*****************************************************************************
  194.  **                                                                             **
  195.  **        Functions to set/get the group to be displayed by the Viewer.         **
  196.  **                                                                             **
  197.  ****************************************************************************}
  198. FUNCTION Q3ViewerUseGroup(theViewer: TQ3ViewerObject; group: TQ3GroupObject): OSErr; C;
  199. FUNCTION Q3ViewerGetGroup(theViewer: TQ3ViewerObject): TQ3GroupObject; C;
  200.  
  201. {*****************************************************************************
  202.  **                                                                             **
  203.  **        Functions to set/get the color used to clear the window                 **
  204.  **                                                                             **
  205.  ****************************************************************************}
  206. FUNCTION Q3ViewerSetBackgroundColor(theViewer: TQ3ViewerObject; VAR color: TQ3ColorARGB): OSErr; C;
  207. FUNCTION Q3ViewerGetBackgroundColor(theViewer: TQ3ViewerObject; VAR color: TQ3ColorARGB): OSErr; C;
  208.  
  209. {*****************************************************************************
  210.  **                                                                             **
  211.  **        Getting/Setting a Viewer's View object.                                 **
  212.  **                                                                             **
  213.  ****************************************************************************}
  214. FUNCTION Q3ViewerGetView(theViewer: TQ3ViewerObject): TQ3ViewObject; C;
  215. FUNCTION Q3ViewerRestoreView(theViewer: TQ3ViewerObject): OSErr; C;
  216.  
  217. {*****************************************************************************
  218.  **                                                                             **
  219.  **        Calls for setting/getting viewer flags                                 **
  220.  **                                                                             **
  221.  ****************************************************************************}
  222. FUNCTION Q3ViewerSetFlags(theViewer: TQ3ViewerObject; flags: UInt32): OSErr; C;
  223. FUNCTION Q3ViewerGetFlags(theViewer: TQ3ViewerObject): UInt32; C;
  224.  
  225. {*****************************************************************************
  226.  **                                                                             **
  227.  **        Calls related to bounds/dimensions.  Bounds is the size of              **
  228.  **        the window.  Dimensions can either be the Rect from the ViewHints     **
  229.  **        or the current dimensions of the window (if you do a Set).             **
  230.  **                                                                             **
  231.  ****************************************************************************}
  232. FUNCTION Q3ViewerSetBounds(theViewer: TQ3ViewerObject; VAR bounds: Rect): OSErr; C;
  233. FUNCTION Q3ViewerGetBounds(theViewer: TQ3ViewerObject; VAR bounds: Rect): OSErr; C;
  234. FUNCTION Q3ViewerSetDimension(theViewer: TQ3ViewerObject; width: UInt32; height: UInt32): OSErr; C;
  235. FUNCTION Q3ViewerGetDimension(theViewer: TQ3ViewerObject; VAR width: UInt32; VAR height: UInt32): OSErr; C;
  236. FUNCTION Q3ViewerGetMinimumDimension(theViewer: TQ3ViewerObject; VAR width: UInt32; VAR height: UInt32): OSErr; C;
  237.  
  238. {*****************************************************************************
  239.  **                                                                             **
  240.  **                            Port related calls                                 **
  241.  **                                                                             **
  242.  ****************************************************************************}
  243. FUNCTION Q3ViewerSetPort(theViewer: TQ3ViewerObject; port: CGrafPtr): OSErr; C;
  244. FUNCTION Q3ViewerGetPort(theViewer: TQ3ViewerObject): CGrafPtr; C;
  245.  
  246. {*****************************************************************************
  247.  **                                                                             **
  248.  **        Adjust Cursor should be called from idle loop to allow the Viewer     **
  249.  **        to change the cursor according to the cursor position/object under     **
  250.  **        the cursor.                                                             **
  251.  **                                                                             **
  252.  ****************************************************************************}
  253. FUNCTION Q3ViewerAdjustCursor(theViewer: TQ3ViewerObject; VAR pt: Point): BOOLEAN; C;
  254. FUNCTION Q3ViewerCursorChanged(theViewer: TQ3ViewerObject): OSErr; C;
  255.  
  256. {*****************************************************************************
  257.  **                                                                             **
  258.  **        Returns the state of the viewer.  See the constant defined at the     **
  259.  **        top of this file.                                                     **
  260.  **                                                                             **
  261.  ****************************************************************************}
  262. FUNCTION Q3ViewerGetState(theViewer: TQ3ViewerObject): UInt32; C;
  263.  
  264. {*****************************************************************************
  265.  **                                                                             **
  266.  **                            Clipboard utilities                                 **
  267.  **                                                                             **
  268.  ****************************************************************************}
  269. FUNCTION Q3ViewerClear(theViewer: TQ3ViewerObject): OSErr; C;
  270. FUNCTION Q3ViewerCut(theViewer: TQ3ViewerObject): OSErr; C;
  271. FUNCTION Q3ViewerCopy(theViewer: TQ3ViewerObject): OSErr; C;
  272. FUNCTION Q3ViewerPaste(theViewer: TQ3ViewerObject): OSErr; C;
  273.  
  274. {*****************************************************************************
  275.  **                                                                             **
  276.  **                            New Event Model                                     **
  277.  **                                                                             **
  278.  ****************************************************************************}
  279. FUNCTION Q3ViewerMouseDown(theViewer: TQ3ViewerObject; x: LONGINT; y: LONGINT): BOOLEAN; C;
  280. FUNCTION Q3ViewerContinueTracking(theViewer: TQ3ViewerObject; x: LONGINT; y: LONGINT): BOOLEAN; C;
  281. FUNCTION Q3ViewerMouseUp(theViewer: TQ3ViewerObject; x: LONGINT; y: LONGINT): BOOLEAN; C;
  282. FUNCTION Q3ViewerHandleKeyEvent(theViewer: TQ3ViewerObject; VAR evt: EventRecord): BOOLEAN; C;
  283.  
  284. {*****************************************************************************
  285.  **                                                                             **
  286.  **                                    CallBacks                                 **
  287.  **                                                                             **
  288.  ****************************************************************************}
  289. FUNCTION Q3ViewerSetDrawingCallbackMethod(theViewer: TQ3ViewerObject; callbackMethod: TQ3ViewerDrawingCallbackMethod; data: UNIV Ptr): OSErr; C;
  290. FUNCTION Q3ViewerSetWindowResizeCallback(theViewer: TQ3ViewerObject; windowResizeCallbackMethod: TQ3ViewerWindowResizeCallbackMethod; data: UNIV Ptr): OSErr; C;
  291. FUNCTION Q3ViewerSetPaneResizeNotifyCallback(theViewer: TQ3ViewerObject; paneResizeNotifyCallbackMethod: TQ3ViewerPaneResizeNotifyCallbackMethod; data: UNIV Ptr): OSErr; C;
  292.  
  293. {*****************************************************************************
  294.  **                                                                             **
  295.  **                                    Undo                                     **
  296.  **                                                                             **
  297.  ****************************************************************************}
  298. FUNCTION Q3ViewerUndo(theViewer: TQ3ViewerObject): OSErr; C;
  299. FUNCTION Q3ViewerGetUndoString(theViewer: TQ3ViewerObject; str: CStringPtr; VAR cnt: UInt32): BOOLEAN; C;
  300.  
  301. {*****************************************************************************
  302.  **                                                                             **
  303.  **                                Camera Support                                 **
  304.  **                                                                             **
  305.  ****************************************************************************}
  306. FUNCTION Q3ViewerGetCameraCount(theViewer: TQ3ViewerObject; VAR cnt: UInt32): OSErr; C;
  307. FUNCTION Q3ViewerSetCameraByNumber(theViewer: TQ3ViewerObject; cameraNo: UInt32): OSErr; C;
  308. FUNCTION Q3ViewerSetCameraByView(theViewer: TQ3ViewerObject; viewType: TQ3ViewerCameraView): OSErr; C;
  309.  
  310. {*****************************************************************************
  311.  **                                                                             **
  312.  **                            Pop-up Button Options                             **
  313.  **                                                                             **
  314.  ****************************************************************************}
  315. FUNCTION Q3ViewerSetRendererType(theViewer: TQ3ViewerObject; rendererType: TQ3ObjectType): OSErr; C;
  316. FUNCTION Q3ViewerGetRendererType(theViewer: TQ3ViewerObject; VAR rendererType: TQ3ObjectType): OSErr; C;
  317. FUNCTION Q3ViewerChangeBrightness(theViewer: TQ3ViewerObject; brightness: Single): OSErr; C;
  318. FUNCTION Q3ViewerSetRemoveBackfaces(theViewer: TQ3ViewerObject; remove: TQ3Boolean): OSErr; C;
  319. FUNCTION Q3ViewerGetRemoveBackfaces(theViewer: TQ3ViewerObject; VAR remove: TQ3Boolean): OSErr; C;
  320. FUNCTION Q3ViewerSetPhongShading(theViewer: TQ3ViewerObject; phong: TQ3Boolean): OSErr; C;
  321. FUNCTION Q3ViewerGetPhongShading(theViewer: TQ3ViewerObject; VAR phong: TQ3Boolean): OSErr; C;
  322.  
  323. {$ENDC}  {TARGET_OS_MAC}
  324.  
  325.  
  326.  
  327.  
  328. {$ALIGN RESET}
  329. {$POP}
  330.  
  331. {$SETC UsingIncludes := QD3DViewerIncludes}
  332.  
  333. {$ENDC} {__QD3DVIEWER__}
  334.  
  335. {$IFC NOT UsingIncludes}
  336.  END.
  337. {$ENDC}
  338.